设置default env
ENV分区在读写过程中如果突然断电,有极小的概率会出现数据损坏,导致ENV丢失,一但数据丢失系统会启动失败。为保证系统的正常启动,当ENV分区数据CRC校验失败时自动从default值启动。由于每个用户分区的设置不同,请按照以下两步在相应地方配置默认值。
以下log代表ENV CRC 校验失败:
*** warning - bad CRC, using default environment
这里以NAND flash举例(*NOR flash直接跳到第二步即可)
-
设置default mtdpart:(分区信息)
需修改文件
boot/include/configs/infinity2m.h
中对应的宏定义MTDPARTS_DEFAULT。注意: 这里的mtdpart跟uboot下输入mtdpart后的保持一致。
Eg:uboot下输入mtdpart
在
boot/include/configs/infinity2m.h
中有多个MTDPARTS_DEFAULT宏变量,不想区分的话将MTDPARTS_DEFAULT设置为相同的值。 -
在Uboot下设置Default Bootargs跟bootcommand
目前版本中,在
Uboot/include/configs/infinity2m.h
文件末尾有两个宏定义。Eg:在uboot输入printenv bootargs/printenv bootcmd
将图中bootargs和bootcmd的值填到下图对应的CONFIG_BOOTARGS/CONFIG_BOOTCOMMAND。
1. 在Uboot 设置自定义Default ENV
修改文件:`boot\include\env_default.h` 在default\_environment[]数组中参照其它ENV添加默认ENV(\*以上设置的bootargs跟bootcmd最终会定义到此数组)。 ![](media/defaultenv5.png) ![](media/defaultenv6.png) 在`boot/include/configs/infinity2m.h`设置了系统启动必须的default env之后,重新编译uboot并更新到板端,保证env数据丢失时可以系统正常启动。